package common.model.Entity.libraryEntity;

import lombok.Getter;

/**
 * 借阅规则值对象。
 *
 * <p>不可变对象，封装了系统对借阅行为的统一限制：</p>
 * <ul>
 *   <li>最大可借阅册数</li>
 *   <li>单次借阅最大天数</li>
 *   <li>最大续借次数</li>
 * </ul>
 */

@Getter
public class BorrowingRules {
    /**
     * 每位读者同时可借阅的最大册数
     */
    private final int maxBorrowCount;
    /**
     * 单次借阅的最大期限
     */
    private final int maxBorrowDays;
    /**
     * 同一本图书允许的最大续借次数
     */
    private final int maxRenewCount;

    /**
     * 全参构造器
     * @param maxBorrowCount 最大可借阅数
     * @param maxBorrowDays 单次借阅的最大天数
     * @param maxRenewCount 最大续借次数
     */
    public BorrowingRules(int maxBorrowCount, int maxBorrowDays, int maxRenewCount) {
        this.maxBorrowCount = maxBorrowCount;
        this.maxBorrowDays = maxBorrowDays;
        this.maxRenewCount = maxRenewCount;
    }
}
